home *** CD-ROM | disk | FTP | other *** search
/ Aminet 1 (Walnut Creek) / Aminet - June 1993 [Walnut Creek].iso / usenet / sources / volume90 / util / snap_1_4 / part01 / source / snap.h < prev    next >
C/C++ Source or Header  |  1990-02-11  |  5KB  |  176 lines

  1. #include <intuition/intuitionbase.h>
  2. #ifdef AZTEC_C
  3. #include <functions.h>
  4. struct IORequest *CreateExtIO(); /* This is a kludge that is necessary    */
  5.                                  /* since this definition is missing from */
  6.                                  /* manx's <functions.h> include file.    */
  7. #endif AZTEC_C
  8. #include <libraries/arpbase.h>
  9. #include <devices/input.h>
  10. #include <devices/keymap.h>
  11. #include <devices/console.h>
  12. #include <devices/clipboard.h>
  13. #include <exec/memory.h>
  14. #include <exec/interrupts.h>
  15. #include <graphics/gfxmacros.h>
  16.  
  17. #define Create(_Obj)     AllocMem((LONG)sizeof(struct _Obj), MEMF_PUBLIC|MEMF_CLEAR)
  18. #define Kill(_Obj)       FreeMem(_Obj, (LONG)sizeof(*_Obj))
  19. #define Delete(_Obj)     if (_Obj) FreeMem(_Obj, (LONG)sizeof(*_Obj))
  20.  
  21. #define SNAPRSRC "Snap.resource"
  22.  
  23. struct SnapRsrc {
  24.     struct Node node;
  25.     struct Task *Task;
  26.     WORD Priority;
  27.     WORD gfxqual;
  28.     WORD textqual;
  29.     WORD insertkey;
  30.     WORD cwkey;
  31.     char Prepend[17];
  32.     char Append[17];
  33.     WORD flags;
  34.     LONG chardelay;
  35.     LONG linedelay;
  36.     UWORD CrawlPtrn;
  37.     WORD StartUnit;
  38.     WORD FrameMask;
  39.     WORD GadOffset;
  40.     WORD CacheSize;
  41.     WORD BadChar;
  42. };
  43.  
  44. #define XEROX           1
  45. #define EARLYPATCH      2
  46. #define TRUEUNDERSCORE  4
  47. #define JOINLONG        8
  48.  
  49. struct Snap {
  50.     ULONG Size;
  51.     char Chars[1];
  52. };
  53.  
  54. struct GfxSnap {
  55.     struct Gadget DiskGad;
  56.     struct Gadget VProp;
  57.     struct Gadget HProp;
  58.     struct PropInfo VInfo;
  59.     struct PropInfo HInfo;
  60.     struct Image VImage;
  61.     struct Image HImage;
  62.     LONG x, y;
  63.     LONG width, height;
  64.     LONG depth;
  65.     LONG viewmode;
  66.     char rgb[32][3];
  67.     SHORT pagew;
  68.     SHORT pageh;
  69.     struct Window *window;
  70.     struct BitMap BM;
  71. };
  72.  
  73. struct CacheWindow {
  74.     struct MinNode Node;
  75.     struct Window *Window;
  76.     SHORT xoff;
  77.     SHORT yoff;
  78.     SHORT fw;
  79.     SHORT fh;
  80. };
  81.  
  82. #define SAVEGAD 1
  83. #define DISKGAD 2
  84. #define NAMEGAD 3
  85. #define VPROP   4
  86. #define HPROP   5
  87.  
  88. #define CLIP_FIRST 0
  89. #define CLIP_CONT  1
  90. #define CLIP_LAST  2
  91.  
  92. #define TitleFont(win) ((struct TextFont *)(win->IFont ? win->IFont : win->RPort->Font))
  93.  
  94. #define Swap2L(_x,_y) { REGISTER LONG _t = _x; _x = _y; _y = _t; }
  95.  
  96. #define noaction 0
  97. #define snapgfx  1  /* window */
  98. #define snaptext 2  /* text */
  99. #define insert   4  /* inserting */
  100.  
  101. #define waiting   0
  102. #define selregion 1
  103. #define waitext   2
  104. #define selgfx    3
  105. #define waitgfx   4
  106.  
  107. #define UNIT_FRAME 1 /* rect of chars */
  108. #define UNIT_CHAR  2 /* characters with line wrap */
  109. #define UNIT_WORD  3 /* words with line wrap */
  110. #define UNIT_LINE  4 /* lines */
  111.  
  112. #ifdef LATTICE
  113. #include <string.h>     /* Prototyping of string functions */
  114. #include <stdlib.h>     /* Prototyping of standard lib functions */
  115. #endif
  116.  
  117. /* C_Args & ARGs borrowed from the Arp include file */
  118.  
  119. ULONG ReadClip ARGs( (struct IOClipReq *, STRPTR, ULONG, WORD) );
  120. VOID WriteClip ARGs( (struct IOClipReq *, STRPTR, ULONG, WORD) );
  121. VOID SaveClip ARGs( (UBYTE *, ULONG) );
  122. struct Snap *FetchClip ARGs( (VOID) );
  123. VOID MultiDraw ARGs( (struct RastPort *, LONG, Point *) );
  124. VOID crawl_frame ARGs( (LONG) );
  125. VOID erase_frame ARGs( (VOID) );
  126. VOID draw_frame ARGs( (LONG) );
  127. ULONG InvertKeyMap ARGs( (ULONG, struct InputEvent *, struct KeyMap *) );
  128. UWORD LowKeyInvert ARGs( (register UBYTE, struct KeyMap *, UWORD *, UWORD *, ULONG *) );
  129. VOID IndexKey ARGs( (ULONG, struct KeyMap *, ULONG *) );
  130. WORD checkNormal ARGs( (LONG, UBYTE, UWORD, UWORD *) );
  131. WORD checkVanilla ARGs( (UBYTE *, UBYTE, UWORD *) );
  132. WORD checkDead ARGs( (UBYTE **, UBYTE, UWORD *, ULONG *) );
  133. WORD deadQual ARGs( (WORD, UWORD *) );
  134. struct Screen *WhichScreen ARGs( (VOID) );
  135. struct Window *WhichWindow ARGs( (struct Screen *) );
  136. VOID FreePlanes ARGs( (struct BitMap *, LONG, LONG) );
  137. WORD AllocPlanes ARGs( (struct BitMap *, LONG, LONG) );
  138. VOID CacheWindow ARGs( (struct Window *, LONG, LONG, SHORT, SHORT) );
  139. struct CacheWindow *GetCachedWindow ARGs( (struct Screen *, struct Window *) );
  140. VOID CloseStuff ARGs( (VOID) );
  141. WORD OpenStuff ARGs( (VOID) );
  142. VOID SafePatch ARGs( (VOID) );
  143. VOID SafeRestore ARGs( (VOID) );
  144. WORD bump ARGs( (WORD, UBYTE *, WORD) );
  145. ULONG WriteBody ARGs( (struct BitMap *) );
  146. WORD SaveGS ARGs( (struct GfxSnap *) );
  147. WORD isdigit ARGs( (char) );
  148. LONG dectoint ARGs( (char *) );
  149. LONG hextoint ARGs( (char *) );
  150. VOID InsertAscii ARGs( (ULONG) );
  151. VOID GadText ARGs( (struct Gadget *, char *, LONG) );
  152. VOID SwapColorMap ARGs( (struct GfxSnap *) );
  153. VOID CheckWindowMsgs ARGs( (VOID) );
  154. VOID SetSnapFont ARGs( (struct TextFont *) );
  155. WORD IsSpace ARGs( (LONG, LONG) );
  156. VOID update_frame ARGs( (VOID) );
  157. VOID FindWord ARGs( (VOID) );
  158. VOID ChangeUnit ARGs( (VOID) );
  159. VOID ExtendSelection ARGs( (VOID) );
  160. WORD SnapChars ARGs( (VOID) );
  161. WORD HandleChars ARGs( (VOID) );
  162. VOID FixHeights ARGs( (VOID) );
  163. struct GfxSnap *SnapGfx ARGs( (struct RastPort *) );
  164. VOID ExtendGfx ARGs( (VOID) );
  165. VOID gfx_frame ARGs( (VOID) );
  166. WORD HandleGfx ARGs( (VOID) );
  167. struct Window *opensharedwindow ARGs( (struct NewWindow *) );
  168. VOID closesharedwindow ARGs( (struct Window *) );
  169. VOID SetUpBorder ARGs( (struct Border *, struct Gadget *) );
  170. VOID AdjustSize ARGs( (struct GfxSnap *) );
  171. VOID SyncGS ARGs( (struct GfxSnap *) );
  172. SHORT OpenCW ARGs( (VOID) );
  173. UBYTE C_Args interpret ARGs( (UWORD *) );
  174. VOID CopyFont ARGs( (VOID) );
  175. VOID myhandler();
  176.